package registnet.base.student;

import registnet.base.Classification;
import registnet.base.IChecklist;
import registnet.base.ICurriculum;
import registnet.base.IPerson;
import registnet.base.IPlanOfCourseWork;
import registnet.base.ITranscript;
import registnet.base.Priority;
import registnet.base.Standing;

/**
 * Creates an interface for student implementations.
 */
public interface IStudent extends IPerson {
	
	/**
	 * Returns the student number of the student.
	 * @return the student number of the student
	 */
	public String getStudentNumber();
	
	/**
	 * Sets the student number of the student
	 * @param studentNumber
	 */
	public void setStudentNumber(String studentNumber);
	
	/**
	 * Returns the code of the college which is associated to the student.
	 * @return the code of the college which is associated to the student
	 */
	public String getCollegeCode();

	/**
	 * Sets the code of the college which is associated to the student.
	 * @param collegeCode
	 */
	public void setCollegeCode(String collegeCode);

	/**
	 * Returns the degree program of the student.
	 * @return the degree program of the student
	 */
	public String getDegreeProgram();

	/**
	 * Sets the degree program of the student.
	 * @param degreeProgram
	 */
	public void setDegreeProgram(String degreeProgram);
	
	/**
	 * Returns the status of the student.
	 * @return the status of the student
	 */
	public int getStatus();
	
	/**
	 * Sets the status of the student.
	 * @param status
	 */
	public void setStatus(int status);
	
	/**
	 * Returns the standing of the student.
	 * @return the standing of the student
	 */
	public Standing getStanding();
	
	/**
	 * Sets the standing of the student.
	 * @param standing
	 */
	public void setStanding(Standing standing);
	
	/**
	 * Returns the classification of the student.
	 * @return the classification of the student
	 */
	public Classification getClassification();
	
	/**
	 * Sets the classification of the student
	 * @param classification
	 */
	public void setClassification(Classification classification);
	
	/**
	 * Returns the priority of the student.
	 * @return the priority of the student
	 */
	public Priority getPriority();
	
	/**
	 * Sets the priority of the student.
	 * @param priority
	 */
	public void setPriority(Priority priority);
	
	/**
	 * Returns the curriculum of the student.
	 * @return the curriculum of the student
	 */
	public ICurriculum getCurriculum();
	
	/**
	 * Returns the plan of coursework of the student.
	 * @return the plan of coursework of the student
	 */
	public IPlanOfCourseWork getPlanOfCourseWork();
	
	/**
	 * Returns the transcript of the student.
	 * @return the transcript of the student
	 */
	public ITranscript getTranscript();
	
	/**
	 * Returns the checklist of the student.
	 * @return the checklist of the student
	 */
	public IChecklist getChecklist();
	
	/**
	 * Sets the checklist of the student.
	 * @param checklist
	 */
	public void setChecklist(IChecklist checklist);

}
